package cn.dao;


import cn.pojo.OrderDO2;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;

import java.util.List;


public interface OrderDao2 extends JpaRepository<OrderDO2, Integer> {
    /**
     * 需求：根据订单号查询该订单下的所有商品信息
     */

    /**
     * 法二：返回值为实体(有@Entity注解)
     * 此时使用的是原生SQL，nativeQuery = true
     * (因为已在实体类OrderDO2中使用@Column注解进行了属性与字段的映射、故可以返回为实体类)
     * <p>
     * 但该方法必需要保证@Id标注的属性不会重复、否则会造成多条数据一样!
     * (@Id是标注主键的，按理说主键本来就不该重复的~)
     */
    @Query(value = "SELECT x.order_id,\n" +
            " x.product_id,\n" +
            " y.product_name,\n" +
            " y.product_price,\n" +
            " y.product_factory\n" +
            " FROM t_order x\n" +
            " LEFT JOIN t_product y\n" +
            " ON x.product_id = y.product_id\n" +
            " WHERE x.order_id = ?1", nativeQuery = true)
    List<OrderDO2> getOrderInfo(Integer orderId);

}
